{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import torchvision.transforms as transforms\n",
    "from torchvision.datasets import Caltech101\n",
    "from torchvision import models\n",
    "from torch.utils.data import DataLoader, random_split\n",
    "import matplotlib.pyplot as plt\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 加载预训练的 ConvNeXt-Tiny 模型\n",
    "# model = models.convnext_tiny(pretrained=True)\n",
    "model = models.convnext_tiny(weights=None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 定义预处理步骤\n",
    "transform = transforms.Compose([\n",
    "    transforms.Resize((224, 224)),  # 调整图像大小为 224x224\n",
    "    transforms.Grayscale(num_output_channels=3),  # 将灰度图像转换为 3 通道（RGB）\n",
    "    transforms.ToTensor(),  # 转换为张量\n",
    "    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])  # 标准化\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 下载 Caltech101 数据集\n",
    "# 已经下好了\n",
    "data_dir = '/root/dr/CI/data'\n",
    "dataset = Caltech101(root=data_dir, download=False, transform=transform)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 划分训练集和验证集，80% 训练集，20% 验证集\n",
    "train_size = int(0.8 * len(dataset))\n",
    "val_size = len(dataset) - train_size\n",
    "train_dataset, val_dataset = random_split(dataset, [train_size, val_size])\n",
    "# 创建 DataLoader\n",
    "train_loader = DataLoader(train_dataset, batch_size=256, shuffle=True)\n",
    "val_loader = DataLoader(val_dataset, batch_size=256, shuffle=False)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 下载 Caltech101 数据集\n",
    "# 已经下好了\n",
    "data_dir = '/root/dr/CI/data'\n",
    "train_dataset = Caltech101(root=data_dir, download=False, transform=transform)\n",
    "train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 替换最后的分类层以适应 Caltech101 的 102 个类别\n",
    " # ConvNeXt-Tiny 的最后一层输出是 768 维\n",
    "model.classifier[2] = nn.Linear(768, 102) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training on device: cuda\n"
     ]
    }
   ],
   "source": [
    "# 将模型移到 GPU（如果可用）\n",
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "model = model.to(device)\n",
    "print(f'Training on device: {device}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 定义损失函数和优化器\n",
    "criterion = nn.CrossEntropyLoss()\n",
    "optimizer = torch.optim.Adam(model.parameters(), lr=0.001)\n",
    "# 记录训练过程中的损失和精度\n",
    "train_losses = []\n",
    "train_accuracies = []\n",
    "val_accuracies = []"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 定义计算准确率的函数\n",
    "def calculate_accuracy(loader, model):\n",
    "    correct = 0\n",
    "    total = 0\n",
    "    model.eval()  # 切换到评估模式\n",
    "    with torch.no_grad():\n",
    "        for inputs, labels in loader:\n",
    "            inputs, labels = inputs.to(device), labels.to(device)\n",
    "            outputs = model(inputs)\n",
    "            _, predicted = torch.max(outputs, 1)\n",
    "            total += labels.size(0)\n",
    "            correct += (predicted == labels).sum().item()\n",
    "    return correct / total"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/100, Train Loss: 3.9892, Train Acc: 0.1907, Val Acc: 0.2679\n",
      "Epoch 2/100, Train Loss: 3.2803, Train Acc: 0.2951, Val Acc: 0.3301\n",
      "Epoch 3/100, Train Loss: 2.8687, Train Acc: 0.3621, Val Acc: 0.4147\n",
      "Epoch 4/100, Train Loss: 2.5207, Train Acc: 0.4242, Val Acc: 0.4856\n",
      "Epoch 5/100, Train Loss: 2.2154, Train Acc: 0.4744, Val Acc: 0.5530\n",
      "Epoch 6/100, Train Loss: 1.9690, Train Acc: 0.5235, Val Acc: 0.6008\n",
      "Epoch 7/100, Train Loss: 1.7533, Train Acc: 0.5652, Val Acc: 0.6607\n",
      "Epoch 8/100, Train Loss: 1.5212, Train Acc: 0.6114, Val Acc: 0.6786\n",
      "Epoch 9/100, Train Loss: 1.3384, Train Acc: 0.6494, Val Acc: 0.7644\n",
      "Epoch 10/100, Train Loss: 1.1149, Train Acc: 0.7004, Val Acc: 0.8105\n",
      "Epoch 11/100, Train Loss: 0.9160, Train Acc: 0.7454, Val Acc: 0.8842\n",
      "Epoch 12/100, Train Loss: 0.7424, Train Acc: 0.7906, Val Acc: 0.8664\n",
      "Epoch 13/100, Train Loss: 0.5862, Train Acc: 0.8295, Val Acc: 0.9297\n",
      "Epoch 14/100, Train Loss: 0.4083, Train Acc: 0.8783, Val Acc: 0.9424\n",
      "Epoch 15/100, Train Loss: 0.3598, Train Acc: 0.8941, Val Acc: 0.9735\n",
      "Epoch 16/100, Train Loss: 0.2492, Train Acc: 0.9250, Val Acc: 0.9729\n",
      "Epoch 17/100, Train Loss: 0.2311, Train Acc: 0.9296, Val Acc: 0.9879\n",
      "Epoch 18/100, Train Loss: 0.2267, Train Acc: 0.9314, Val Acc: 0.9729\n",
      "Epoch 19/100, Train Loss: 0.1723, Train Acc: 0.9491, Val Acc: 0.9856\n",
      "Epoch 20/100, Train Loss: 0.1658, Train Acc: 0.9468, Val Acc: 0.9891\n",
      "Learning rate adjusted to 0.0005 at epoch 20\n",
      "Epoch 21/100, Train Loss: 0.0700, Train Acc: 0.9814, Val Acc: 0.9977\n",
      "Epoch 22/100, Train Loss: 0.0421, Train Acc: 0.9892, Val Acc: 1.0000\n",
      "Epoch 23/100, Train Loss: 0.0393, Train Acc: 0.9901, Val Acc: 0.9988\n",
      "Epoch 24/100, Train Loss: 0.0422, Train Acc: 0.9885, Val Acc: 0.9983\n",
      "Epoch 25/100, Train Loss: 0.0453, Train Acc: 0.9881, Val Acc: 0.9983\n",
      "Epoch 26/100, Train Loss: 0.0442, Train Acc: 0.9878, Val Acc: 0.9994\n",
      "Epoch 27/100, Train Loss: 0.0554, Train Acc: 0.9843, Val Acc: 0.9971\n",
      "Epoch 28/100, Train Loss: 0.0549, Train Acc: 0.9849, Val Acc: 0.9983\n",
      "Epoch 29/100, Train Loss: 0.0541, Train Acc: 0.9828, Val Acc: 0.9965\n",
      "Epoch 30/100, Train Loss: 0.0476, Train Acc: 0.9862, Val Acc: 0.9988\n",
      "Epoch 31/100, Train Loss: 0.0572, Train Acc: 0.9810, Val Acc: 0.9983\n",
      "Epoch 32/100, Train Loss: 0.0510, Train Acc: 0.9848, Val Acc: 0.9977\n",
      "Epoch 33/100, Train Loss: 0.0494, Train Acc: 0.9858, Val Acc: 0.9965\n",
      "Epoch 34/100, Train Loss: 0.0478, Train Acc: 0.9865, Val Acc: 0.9977\n",
      "Epoch 35/100, Train Loss: 0.0513, Train Acc: 0.9835, Val Acc: 0.9988\n",
      "Epoch 36/100, Train Loss: 0.0595, Train Acc: 0.9816, Val Acc: 0.9977\n",
      "Epoch 37/100, Train Loss: 0.0519, Train Acc: 0.9844, Val Acc: 0.9988\n",
      "Epoch 38/100, Train Loss: 0.0366, Train Acc: 0.9880, Val Acc: 0.9983\n",
      "Epoch 39/100, Train Loss: 0.0485, Train Acc: 0.9851, Val Acc: 0.9983\n",
      "Epoch 40/100, Train Loss: 0.0391, Train Acc: 0.9893, Val Acc: 0.9983\n",
      "Epoch 41/100, Train Loss: 0.0382, Train Acc: 0.9882, Val Acc: 1.0000\n",
      "Epoch 42/100, Train Loss: 0.0510, Train Acc: 0.9859, Val Acc: 0.9988\n",
      "Epoch 43/100, Train Loss: 0.0500, Train Acc: 0.9843, Val Acc: 0.9965\n",
      "Epoch 44/100, Train Loss: 0.0418, Train Acc: 0.9877, Val Acc: 0.9983\n",
      "Epoch 45/100, Train Loss: 0.0355, Train Acc: 0.9894, Val Acc: 0.9988\n",
      "Epoch 46/100, Train Loss: 0.0273, Train Acc: 0.9916, Val Acc: 0.9994\n",
      "Epoch 47/100, Train Loss: 0.0499, Train Acc: 0.9850, Val Acc: 0.9971\n",
      "Epoch 48/100, Train Loss: 0.0450, Train Acc: 0.9864, Val Acc: 0.9988\n",
      "Epoch 49/100, Train Loss: 0.0322, Train Acc: 0.9895, Val Acc: 0.9994\n",
      "Epoch 50/100, Train Loss: 0.0343, Train Acc: 0.9909, Val Acc: 0.9983\n",
      "Epoch 51/100, Train Loss: 0.0439, Train Acc: 0.9863, Val Acc: 0.9960\n",
      "Epoch 52/100, Train Loss: 0.0253, Train Acc: 0.9917, Val Acc: 0.9988\n",
      "Epoch 53/100, Train Loss: 0.0359, Train Acc: 0.9901, Val Acc: 0.9960\n",
      "Epoch 54/100, Train Loss: 0.0377, Train Acc: 0.9891, Val Acc: 0.9977\n",
      "Epoch 57/100, Train Loss: 0.0432, Train Acc: 0.9867, Val Acc: 0.9925\n",
      "Epoch 58/100, Train Loss: 0.0368, Train Acc: 0.9881, Val Acc: 0.9965\n",
      "Epoch 59/100, Train Loss: 0.0450, Train Acc: 0.9865, Val Acc: 0.9971\n",
      "Epoch 60/100, Train Loss: 0.0363, Train Acc: 0.9896, Val Acc: 0.9994\n",
      "Learning rate adjusted to 0.0002 at epoch 60\n",
      "Epoch 61/100, Train Loss: 0.0184, Train Acc: 0.9946, Val Acc: 0.9994\n",
      "Epoch 62/100, Train Loss: 0.0151, Train Acc: 0.9960, Val Acc: 0.9994\n",
      "Epoch 63/100, Train Loss: 0.0102, Train Acc: 0.9967, Val Acc: 0.9994\n",
      "Epoch 64/100, Train Loss: 0.0099, Train Acc: 0.9968, Val Acc: 0.9994\n",
      "Epoch 65/100, Train Loss: 0.0148, Train Acc: 0.9953, Val Acc: 1.0000\n",
      "Epoch 66/100, Train Loss: 0.0125, Train Acc: 0.9964, Val Acc: 1.0000\n",
      "Epoch 67/100, Train Loss: 0.0115, Train Acc: 0.9964, Val Acc: 1.0000\n",
      "Epoch 68/100, Train Loss: 0.0090, Train Acc: 0.9972, Val Acc: 0.9994\n",
      "Epoch 69/100, Train Loss: 0.0101, Train Acc: 0.9972, Val Acc: 0.9988\n",
      "Epoch 70/100, Train Loss: 0.0084, Train Acc: 0.9969, Val Acc: 0.9988\n",
      "Epoch 71/100, Train Loss: 0.0120, Train Acc: 0.9962, Val Acc: 0.9994\n",
      "Epoch 72/100, Train Loss: 0.0093, Train Acc: 0.9973, Val Acc: 0.9988\n",
      "Epoch 73/100, Train Loss: 0.0089, Train Acc: 0.9980, Val Acc: 1.0000\n",
      "Epoch 74/100, Train Loss: 0.0071, Train Acc: 0.9978, Val Acc: 1.0000\n",
      "Epoch 75/100, Train Loss: 0.0065, Train Acc: 0.9982, Val Acc: 1.0000\n",
      "Epoch 76/100, Train Loss: 0.0096, Train Acc: 0.9971, Val Acc: 0.9988\n",
      "Epoch 77/100, Train Loss: 0.0085, Train Acc: 0.9976, Val Acc: 0.9994\n",
      "Epoch 78/100, Train Loss: 0.0067, Train Acc: 0.9970, Val Acc: 0.9994\n",
      "Epoch 79/100, Train Loss: 0.0069, Train Acc: 0.9978, Val Acc: 0.9988\n",
      "Epoch 80/100, Train Loss: 0.0126, Train Acc: 0.9961, Val Acc: 0.9994\n",
      "Epoch 81/100, Train Loss: 0.0113, Train Acc: 0.9962, Val Acc: 0.9994\n",
      "Epoch 82/100, Train Loss: 0.0118, Train Acc: 0.9967, Val Acc: 1.0000\n",
      "Epoch 83/100, Train Loss: 0.0103, Train Acc: 0.9973, Val Acc: 1.0000\n",
      "Epoch 84/100, Train Loss: 0.0115, Train Acc: 0.9972, Val Acc: 0.9994\n",
      "Epoch 85/100, Train Loss: 0.0127, Train Acc: 0.9968, Val Acc: 1.0000\n",
      "Epoch 86/100, Train Loss: 0.0149, Train Acc: 0.9953, Val Acc: 1.0000\n",
      "Epoch 87/100, Train Loss: 0.0091, Train Acc: 0.9976, Val Acc: 1.0000\n",
      "Epoch 88/100, Train Loss: 0.0053, Train Acc: 0.9984, Val Acc: 0.9988\n",
      "Epoch 89/100, Train Loss: 0.0144, Train Acc: 0.9959, Val Acc: 0.9983\n",
      "Epoch 90/100, Train Loss: 0.0086, Train Acc: 0.9982, Val Acc: 0.9994\n",
      "Epoch 91/100, Train Loss: 0.0077, Train Acc: 0.9971, Val Acc: 1.0000\n",
      "Epoch 92/100, Train Loss: 0.0081, Train Acc: 0.9975, Val Acc: 1.0000\n",
      "Epoch 93/100, Train Loss: 0.0085, Train Acc: 0.9975, Val Acc: 1.0000\n",
      "Epoch 94/100, Train Loss: 0.0053, Train Acc: 0.9983, Val Acc: 0.9988\n",
      "Epoch 95/100, Train Loss: 0.0095, Train Acc: 0.9964, Val Acc: 0.9994\n",
      "Epoch 96/100, Train Loss: 0.0084, Train Acc: 0.9968, Val Acc: 1.0000\n",
      "Epoch 97/100, Train Loss: 0.0115, Train Acc: 0.9960, Val Acc: 0.9994\n",
      "Epoch 98/100, Train Loss: 0.0103, Train Acc: 0.9968, Val Acc: 1.0000\n",
      "Epoch 99/100, Train Loss: 0.0072, Train Acc: 0.9977, Val Acc: 0.9988\n",
      "Epoch 100/100, Train Loss: 0.0081, Train Acc: 0.9971, Val Acc: 0.9988\n"
     ]
    }
   ],
   "source": [
    "num_epochs = 100 # 训练 100 个 epoch\n",
    "# 训练模型（简单示例）\n",
    "for epoch in range(num_epochs):\n",
    "    if epoch == 20:\n",
    "        for param_group in optimizer.param_groups:\n",
    "            param_group['lr'] = 0.0005\n",
    "        print(f\"Learning rate adjusted to {optimizer.param_groups[0]['lr']} at epoch {epoch}\")\n",
    "    if epoch == 60:\n",
    "        for param_group in optimizer.param_groups:\n",
    "            param_group['lr'] = 0.0002\n",
    "        print(f\"Learning rate adjusted to {optimizer.param_groups[0]['lr']} at epoch {epoch}\")\n",
    "    model.train()  # 切换到训练模式\n",
    "    running_loss = 0.0\n",
    "    correct = 0\n",
    "    total = 0\n",
    "    for inputs, labels in train_loader:\n",
    "        inputs, labels = inputs.to(device), labels.to(device)\n",
    "\n",
    "        # 前向传播\n",
    "        optimizer.zero_grad()\n",
    "        outputs = model(inputs)\n",
    "        loss = criterion(outputs, labels)\n",
    "        \n",
    "        # 反向传播和优化\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "\n",
    "        running_loss += loss.item()\n",
    "\n",
    "        # 计算训练准确率\n",
    "        _, predicted = torch.max(outputs, 1)\n",
    "        total += labels.size(0)\n",
    "        correct += (predicted == labels).sum().item()\n",
    "\n",
    "    train_loss = running_loss / len(train_loader)\n",
    "    train_acc = correct / total\n",
    "    val_acc = calculate_accuracy(val_loader, model)\n",
    "\n",
    "    train_losses.append(train_loss)\n",
    "    train_accuracies.append(train_acc)\n",
    "    val_accuracies.append(val_acc)\n",
    "\n",
    "    print(f\"Epoch {epoch+1}/{num_epochs}, Train Loss: {train_loss:.4f}, Train Acc: {train_acc:.4f}, Val Acc: {val_acc:.4f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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aqIoti7gZujevTvOnz+PjRs34vrrr8fXX3+N66+/3mKu1J133omkpCS89dZbiIiIwGuvvYaePXvixx9/dFicRERkW23t3Pbyyy9jwYIFGDlyJD799FNs27YN27dvR8+ePet9X0edQ++77z4UFxfj+++/h16vx9dff42bb74ZwcHBAGzznV3L1Jt95513Ii4uznzbtGkT0tPT8b///c92H7CGtV5va8Xg6vv789tvv+G2226DVqvFO++8g61bt2L79u245557WvTn0qNHDwwYMACffvopAKnwmlqttrjgQe0bC6kRubhdu3bhypUr+OabbzBy5Ejz9kuXLskYVa3o6GicP3++znbTMLfo6GjzNk9PT0yfPh3Tp0+HXq/H7bffjpdeegkLFy40L/8RHh6ORx99FI8++ihycnLQv39/vPTSSxg/frxjPhAREdmdnOe2r776CjfccAPWrFljsb2wsBBBQUHNPp7pPPfXX3/hxhtvNG+vqqrCpUuXkJCQ0KTj3HbbbfD29saGDRugUqlQUFBgMbTc1t9ZWVkZvv32W0yfPh3Tpk2r8/pjjz2Gzz77DDfccAM6d+4MADh16hTGjBlT7/FMvfqnTp1q8H39/f1RWFhYZ7tpxEBTfP3119Bqtdi2bRs0Go15+7p16yzade7cGUajEWfOnEHfvn0bPOaMGTOwYMECZGZmYsOGDZg4caLF9AVq39jTTeTiTFfYr75yq9fr8c4778gVkoUJEybgwIED2Ldvn3lbWVkZ3n//fcTExJiHdF25csViP7VajR49ekAURVRVVcFgMNQZGhcSEoKIiAjodDr7fxAiInIYOc9tSqWyTm/ol19+ifT09BYdb+DAgQgODsbq1auh1+vN29evX19vcmmNu7s7pk6diq1bt+Ldd9+Fp6cnJk+ebBE3YLvvbPPmzSgrK8OcOXMwbdq0Ordbb70VX3/9NXQ6Hfr374/Y2FisXLmyzmcyxRMcHIyRI0di7dq1SElJqbcNICXCRUVFOHHihHlbZmameWh3UyiVSgiCYNE7fvnyZWzZssWi3ZQpU6BQKLBkyZI6IwGu/Ttw9913QxAEzJs3D0lJSY2uN0/tC3u6iVzcsGHD4O/vj5kzZ+Kxxx6DIAj45JNPHDo0/Ouvv663QMvMmTPx73//G59//jnGjx+Pxx57DAEBAfjoo49w6dIlfP311+bCJTfffDPCwsIwfPhwhIaG4uzZs3j77bcxceJEeHt7o7CwEB06dMC0adOQkJAALy8v/PLLLzh48CCWLVvmsM9KRET2J+e57dZbb8WSJUswe/ZsDBs2DCdPnsRnn33W5PnX11KpVHjxxRfx97//HTfeeCOmT5+OS5cuYd26dc0+5n333Wdevuree++Fp6en+TVbf2efffYZAgMDMWzYsHpfv+222/DBBx/ghx9+wO233453330XkyZNQt++fTF79myEh4fj3LlzOH36NLZt2wYAePPNN3H99dejf//+ePjhhxEbG4vLly/jhx9+wLFjxwAAd911F/71r39h6tSpeOyxx1BeXo53330XXbt2rbeQXX0mTpyI5cuX45ZbbsE999yDnJwcrFq1Cl26dLFI5rt06YJnnnkGS5cuxYgRI3D77bdDo9Hg4MGDiIiIQGJiorltcHAwbrnlFnz55Zfw8/OzWHaMiEuGETkha8uqWFtS6/fffxevu+460d3dXYyIiBCfeuopcdu2bSIA8ddffzW3s7asymuvvVbnmADExYsXNxinabkUazfTMmEXL14Up02bJvr5+YlarVYcPHiw+P3331sc67333hNHjhwpBgYGihqNRuzcubP45JNPikVFRaIoiqJOpxOffPJJMSEhQfT29hY9PT3FhIQE8Z133mkwRiIiahuc5dxWWVkpPv7442J4eLjo7u4uDh8+XNy3b584atQoi+W9rC2baXr/devWWWx/5513xNjYWFGj0YgDBw4Ud+/eXeeYjamurhbDw8NFAOLWrVvrvN7S7+xa2dnZopubm/i3v/3Napvy8nLRw8NDnDp1qnnbnj17xLFjx5rP03369BHfeusti/1OnTolTp061fybID4+Xnzuuecs2vz8889ir169RLVaLcbHx4uffvqp1SXDrC0lumbNGjEuLk7UaDRit27dxHXr1tV7DFEUxbVr14r9+vUTNRqN6O/vL44aNUrcvn17nXZffPGFCEB8+OGHrX4v1D4JoujA7i4iIiIiIiIX9O2332LKlCnYvXu3eWk4IgBg0k1ERERERNRKt956K86ePYsLFy60am1xcj2c001ERERERNRCGzduxIkTJ/DDDz/gjTfeYMJNdbCnm4iIiIiIqIUEQYCXlxemT5+O1atXw82N/ZpkiX8jiIiIiIiIWoh9mNQYrtNNRERERERE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",
      "text/plain": [
       "<Figure size 1000x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "# 绘制训练损失、训练精度和验证精度的曲线图\n",
    "epochs_range = range(1, num_epochs + 1)\n",
    "plt.figure(figsize=(10, 5))\n",
    "\n",
    "# 绘制训练损失\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.plot(epochs_range, train_losses, label='Train Loss')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Loss')\n",
    "plt.title('Train Loss')\n",
    "plt.legend()\n",
    "\n",
    "# 绘制训练精度和验证精度\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.plot(epochs_range, train_accuracies, label='Train Accuracy')\n",
    "plt.plot(epochs_range, val_accuracies, label='Val Accuracy')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.title('Train and Val Accuracy')\n",
    "plt.legend()\n",
    "\n",
    "# 保存图像到工作目录\n",
    "plt.tight_layout()\n",
    "plt.savefig('training_results.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "模型已保存为 convnext_100epochs.pth\n"
     ]
    }
   ],
   "source": [
    "# 保存模型的 state_dict 到磁盘\n",
    "torch.save(model.state_dict(), 'convnext_100epochs.pth')\n",
    "\n",
    "print(\"模型已保存为 convnext_100epochs.pth\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
